DNS 服务
DNS(Domain Name System)协议也是一个应用层协议,提供机器域名到 IP 地址的转换
Linux 下访问
Linux 下的 /etc/resolv.conf
它是 DNS 客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序。
$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver 172.29.80.1
可以使用 host 命令去访问 DNS 服务器,-t
选项是告诉 DNS 协议使用哪种查询类型(看下面的 “DNS 的解析类型” 小节)
$ host -t A www.baidu.com
www.baidu.com has address 183.232.231.172
resolv.conf 的关键字主要有四个,分别是:
nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序
最主要是 nameserver 关键字,如果没指定 nameserver 就找不到 DNS 服务器,其它关键字是可选的。
nameserver:表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的,且只有当第一个 nameserver 没有反应时才查询下面的 nameserver。
WSL 就是通过这个 nameserver 访问到主机的代理的
export hostip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*')
export https_proxy="http://${hostip}:7890"
export http_proxy="http://${hostip}:7890"
使用注意
常见的域名前缀
域名前缀,常见用法有:
www
:解析后的域名为www.example.com
@
:直接解析主域名example.com
*
:泛解析,匹配其他所有域名*.example.com
mail
:将域名解析为mail.example.com
,通常用于解析邮箱服务器- 二级域名:如
abc.example.com
- 手机网站:如
m.example.com
(mobile phone)
泛域名解析:泛域名解析是指将 *
域名解析到同一 IP。在域名前添加任何子域名,均可访问到所指向的 WEB 地址。假如域名为 a.com
,也就是说域名 a.com
之下所设的 *.a.com
全部解析到同一个 IP 地址上去。比如设 **.a.com
就会自己自动解析到与 a.com
同一个 IP 地址上去。
域名智能解析:域名智能解析就是除了具备一般的基本 DNS 解析功能外,还可以自动识别浏览者的来源,并把相同的域名智能 DNS解析到双线路机器的网通或电信的 IP, 以便就近访问这个网站。
TTL值:全称是 “生存时间(Time To Live)”,它表示 DNS 记录在 DNS 服务器上缓存时间。TTL 的时间长度单位是秒,一般为3600秒。比如:在访问 www.example.com
时,如果在 DNS 服务器的缓存中没有该记录,就会向某个 NS 服务器发出请求,获得该记录后,该记录会在 DNS 服务器上保存 TTL 的时间长度,在TTL有效期内访问 www.example.com
,DNS 服务器会直接缓存中返回刚才的记录。
URL转发:就是转发功能,如果没有一台独立的服务器(也就是没有一个独立的 IP 地址)或者还有一个域名 B,想访问 A 域名时访问到 B 域名的内容,这时就可以通过 URL 转发来实现。URL 转发和 CNAME 的主要区别是:URL 转发可以转发到某一个目录下,甚至某一个文件上。而 CNAME 不可以。(狗哥当时做的重定向操作应该就是通过这种方式)
DNS 的解析类型
- A记录: 将域名指向一个IPv4地址
- AAAA记录: 将主机名(或域名)指向一个IPv6地址(例如:
ff03:0:0:0:0:0:0:c1
) - CNAME记录: CNAME 也是一个常见的记录类别,它是一个别名记录,作用是将域名指向一个域名,实现与被指向域名相同的访问效果
- MX记录: MX记录就是邮件交换记录,邮件域名对邮件服务器(域名)的映射。例如,当有人发邮件给
vincen@example.com
时,系统将对example.com
进行 DNS 中的 MX 记录解析(也可以使用二级域名做邮件服务器) - NS记录: 域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置 NS 记录
- TXT记录: 可任意填写,可为空。一般做一些验证记录时会使用此项,如:做SPF(反垃圾邮件)记录,在配置 HTTPS 时也用到了这个
- SRV记录: SRV记录的作用是说明一个服务器能够提供什么样的服务。格式为:
服务的名字.协议的类型
(例如:_example-server._tcp
)。 - SOA记录: SOA 叫做起始授权机构记录,NS 用于标识多台域名解析服务器,SOA 记录用于在众多 NS 记录中哪一台是主服务器
- PTR记录: PTR 记录是 A记录的逆向记录,又称做 IP 反查记录或指针记录,负责将 IP 反向解析为域名
- 显性URL转发记录: 将域名指向一个
http(s)
协议地址,访问域名时,自动跳转至目标地址。例如:将www.example.cn
显性转发到www.example.com
后,访问www.example.cn
时,地址栏显示的地址为:www.example.com
- 隐性URL转发记录: 将域名指向一个
http(s)
协议地址,访问域名时,自动跳转至目标地址,隐性转发会隐藏真实的目标地址。例如:将www.example.cn
显性转发到www.example.com
后,访问www.example.cn
时,地址栏显示的地址仍然是:www.example.cn